package dao;

import java.sql.Connection;
import java.sql.SQLException;
import java.text.ParseException;

import entities.Apartamento;
import entities.Contrato;
import exceptions.DataInvalidaException;
import exceptions.MensalidadeExistenteException;


/**
 * @author tiago.de.l.wanderley
 * @since 03/05/2010
 */
public interface ContratoDAO {

	public void cadastrarContrato(String dataInicioContrato,
			String cpfLocatario, String cpfFiador, Apartamento apto, int tempoContrato, Connection connection)
	throws SQLException, ParseException, DataInvalidaException;

	/**
	 * @param cpfLocatario
	 * @param cpfFiador
	 * @param connection
	 * @throws MensalidadeExistenteException
	 */
	public void renovarContrato(Contrato contrato, int tempoContrato, Connection connection, ApartamentoDAO apartamentoDAO) throws SQLException, ParseException, MensalidadeExistenteException;

	/**
	 * @param cpfLocatario
	 * @param cpfFiador
	 * @param numero
	 * @param bloco
	 * @param connection
	 */
	public void excluirContrato(Contrato contrato, Connection connection) throws SQLException;

	public Contrato recuperarContrato(Apartamento apartamento, Connection connection) throws SQLException;

	public void atualizaContrato(Contrato contrato, Connection connection)
	throws SQLException, ParseException, DataInvalidaException;

}
